package cc.customer.system.service;

import cc.customer.common.domain.ResponseBo;
import cc.customer.common.service.IService;
import cc.customer.system.domain.MyUser;
import cc.customer.system.domain.UserWithRole;

import java.io.IOException;
import java.util.List;

public interface UserService extends IService<MyUser> {

    MyUser findByNameOrMobile(String username);

    UserWithRole findById(Long userId);

    MyUser findByName(String userName);


    List<MyUser> findUserWithDept(MyUser user);
    List<MyUser> findUserWithDeptAllUser(MyUser user);

    void addUser(MyUser user, Long[] roles);

    void updateUser(MyUser user, Long[] roles);

    /*逻辑删除**/
    void batchUpdateUser(String userIds);


    void updatePassword(String password, String username) throws IOException;

    MyUser findUserProfile(MyUser user);

    void updateUserProfile(MyUser user);
    /**根据名字模糊查员工**/
    List<MyUser> selectUserByName(MyUser user);

    /**根据邀请码查员工id*/
    List<MyUser> findByCode();

    /**根据部门id查人员*/
    List<MyUser> selectUserByDeptid(MyUser user);

    List<MyUser> selectUserByDeptid2User(String deptids);

    /**根据用户详情查看部门**/
    MyUser findUserByUuids(String userUuid);

    /**查询用户的详情**/
    MyUser findUserDetailByUuids(String userUuid);

    /**
     * app修改基本用户信息
     * @param user
     */
    ResponseBo updateAppOneUser(MyUser user);


     //更新消息
    ResponseBo updateByPrimaryKey(MyUser user);

    //根据钉钉人员查询 用户
    MyUser selectUserByDingDing(String  dingding);





}
